package com.kerbores.meeting.domain;

import java.io.Serializable;

import org.nutz.dao.entity.annotation.Comment;
import org.nutz.dao.entity.annotation.Id;
import org.nutz.json.Json;
import org.nutz.json.JsonFormat;

/**
 * @author Kerbores
 *
 *         Create At 2015年1月12日 下午2:59:33
 */
public class Entity implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	@Id
	@Comment("数据库自增id")
	private long id;

	/**
	 * 数据库实体的相等判断都按照唯一id进行比较
	 */
	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Entity other = (Entity) obj;
		if (id != other.id)
			return false;
		return true;
	}

	/**
	 * @return the id
	 */
	public long getId() {
		return id;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see java.lang.Object#hashCode()
	 */
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + (int) (id ^ (id >>> 32));
		return result;
	}

	/**
	 * @param id
	 *            the id to set
	 */
	public void setId(long id) {
		this.id = id;
	}

	/**
	 * 一般情况不会调用,此方法只是为了调试方便进行实现
	 */
	@Override
	public String toString() {
		return Json.toJson(this, JsonFormat.forLook());
	}

}
